Some embodiments described herein relate generally to methods and apparatus for performing real-time analytics based on multiple types of streamed data. Some embodiments relate to complex-event processing and/or performing analytics on streaming data without storing some or all of the streaming data in persistent storage. Specifically, some embodiments relate to methods and apparatus for providing an end user a graphical user interface such that the end user can craft complex queries and/or rules to be executed against the streaming data.
Complex-event processing (CEP) generally refers to systems involving identifying, tracking, and/or analyzing complex-events based on multiple streams of data and/or data from multiple sources. An event can be, for example, any occurrence or specific instance of an activity that can be inferred from the data. A complex-event is an event that cannot be inferred from any single stream or source of data, i.e., more than one data stream and/or source are to be analyzed to identify a complex-event.
Some known complex-event processing systems are able to infer complex-events from multiple data sources under certain circumstances, for example, when the streaming data is of a particular pre-defined format and/or when the streaming data is below a threshold quantity. Known complex-event processing systems, however, are generally unsuitable for scaling to accept arbitrary quantities of data and/or handling data that arrives intermittently, in various and/or changing formats, and/or accepting new data streams having different data structures as compared to existing data streams.
Furthermore, known complex-event processing systems are generally pre-configured by experts and/or programmers to identify anticipated events, i.e., when the characteristics of the target event are known in advance such that complex rules can be constructed by individuals with programming expertise. Known complex-event processing systems are generally unsuitable to enable end users, such as analysts who may not have advanced computer programming skills, to identify new events or new types of events. Accordingly, a need exists for methods and apparatus that are scalable; suitable to handle diverse streams of data, diverse data structures and/or diverse data quality; and/or suitable to allow end users without advanced programming experience to define rules such that the end users can identify new and/or previously unexpected events.